package com.xiangxg.jvm.classloader;




public class MyTest23 {
    public static void main(String[] args) {
        System.out.println(System.getProperty("sun.boot.class.path"));
        System.out.println(System.getProperty("java.ext.dirs"));
        System.out.println(System.getProperty("java.class.path"));
        /**
         系统类加载器和扩展类加载器由启动类加载器加载
         启动类加载器是内建于JVM当中，由C++实现
         内建于JVM中的启动类加载器会加载java.lang.classLoader以及其他的java平台类，
         当JVM启动时，一块特殊的机器码会运行，它会加载扩展类加载器与系统类加载器。
         这块特殊的机器码叫做启动类加载器（Bootstrap）.
         启动类加载器并不是java类，而其他的加载器则都是java类。
         启动类加载器是特定于平台的机器指令，它负责开启整个加载过程
         所有类加载器（除了启动类加载器）都被实现为java类。不过，总归要有一个组件来加载第一个java类加载器，从而让整个加载过程能够顺利进行下去，加载第一个纯java类加载器就是启动类加载器的职责。
         启动类加载器还会负责加载供JRE正常运行所需要的基本组件，这包括java.util与java.lang包中的类等。

         */
        System.out.println(ClassLoader.class.getClassLoader());
        //系统类加载器和扩展类加载器由启动类加载器加载
        //System.out.println(Launcher.class.getClassLoader());
        //<p> If the system property "<tt>java.system.class.loader</tt>" is defined
        //     * when this method is first invoked then the value of that property is
        //     * taken to be the name of a class that will be returned as the system
        //     * class loader.  The class is loaded using the default system class loader
        //     * and must define a public constructor that takes a single parameter of
        //     * type <tt>ClassLoader</tt> which is used as the delegation parent.  An
        //     * instance is then created using this constructor with the default system
        //     * class loader as the parameter.  The resulting class loader is defined
        //     * to be the system class loader.
        //修改java.system.class.loader可指定系统类加载器，修改后的系统类加载器由AppClassLoader加载
        System.out.println(System.getProperty("java.system.class.loader"));
        System.out.println(MyTest16.class.getClassLoader());
        System.out.println(MyTest23.class.getClassLoader());
        System.out.println(ClassLoader.getSystemClassLoader());

    }
}
